package sao.visao;

import java.util.List;

import sao.modelo.Operacao;
import sao.modelo.Perfil;

/**
 * Classe usada para gerar o código HTML dos menus usados nas páginas da visão
 * @author Wendell Costa
 */
public class GeradorMenu {
	
	/**
	 * String contendo o código HTML para a geração dos menus das páginas JSP 
	 */
	private String HTMLMenu;
	
	
	/**
	 * Construtor parametrizado. Recebe um objeto Perfil que contém as operações
	 * relativas a cada usuário.
	 * @param perfil - Um objeto do tipo Perfil
	 */
	public GeradorMenu(Perfil perfil){
		setHTMLMenu(perfil);
	}
	

	/**
	 * Cria o código HTML
	 * @param perfil
	 */
	private void setHTMLMenu(Perfil perfil) {
		List<Operacao> operacoes = perfil.getOperacaoes();
		StringBuilder sb = new StringBuilder();
		sb.append("<ul>\n");
		sb.append("<li><a href='inicial.jsp'>Inicial</a></li>\n");
		for (Operacao op : operacoes) {
			sb.append("\t<li><a href='" + op.getIdentificador() + "'>" + op.getDescricao() + "</a></li>\n");
		}
		sb.append("<li><a href='sair.do'>Sair</a></li>\n");
		sb.append("</ul>\n");
		this.HTMLMenu = sb.toString();
	}

	
	/**
	 * Retorna o código HTML gerado através das operações passadas pelo Perfil
	 * @return String com o código HTML
	 */
	public String getHTMLMenu() {
		return this.HTMLMenu;
	}

}//FIM classe GeradorMenu
